﻿#include "FCIMUNode.h"
#include "StandardInputOutputNodeGraphicsItem.h"
FCIMUNode::FCIMUNode() : StandardInputOutputNode()
{

    metaData().setNodePrototype("DA.IMU");
    metaData().setIcon(QIcon(":/logic-designer/icon/resource/imu.svg"));
    metaData().setGroup(u8"Simulation");
    metaData().setNodeName(u8"IMU");
    setDisplayName(u8"IMU");
    addInputKey(u8"PosE");
    addInputKey(u8"gps_v");
    addInputKey(u8"gps");
    addInputKey(u8"AngEular");
    addOutputKey(u8"AngRateB");
}

/**
 * @brief rtti,用于快速实现节点的识别
 *
 * rtti,用于快速实现节点的识别，而不需要不停的dynamic_cast,需要在BaseNode中定义rtti值，
 * 也可以自己定义好不冲突的rtti，此值暂时无用，未来节点多了之后rtti值可以快速筛选出需要的节点
 * @sa BaseNode::RTTIValue
 * @return
 */
int FCIMUNode::rtti() const
{
    return RTTI_IMU;
}

/**
 * @brief 生成图元
 *
 * StandardInputOutputNodeGraphicsItem是标准的输入输出节点，右边为节点输入，左边为节点输出
 * @return
 */
DA::DAAbstractNodeGraphicsItem* FCIMUNode::createGraphicsItem()
{
    auto i = new StandardInputOutputNodeGraphicsItem(this);
    return i;
}

/**
 * @brief 执行节点，执行动作在这里实现
 *
 * 执行的结果通过
 * @return
 */
bool FCIMUNode::exec()
{
    return true;
}
